<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        /*
            逻辑运算符的短路：只存在于&&和||
                &&：
                    一假则假，也就意味着他左边为false，那么就没必要看右边，所以右边代码不会被执行了
                ||：
                    一真则真，也就意味着它左边为true，那么就没必要看右边了，所以右边代码不执行


            总结一下：
                &&左边表达式结果为假，右边不执行
                ||左边表达式结果为真，右边不执行

            逻辑运算式的结果
                跟短路有关
                如果短路了，那么整个式子的结果就是左边的结果
                如果没短路，那么整个式子的结果就是右边的结果
        */

        // let res1 = 10 + 5 && 5 + 3
        // console.log(res1) // 8

        // let res2 = 10 - 10 && 5 + 3
        // console.log(res2) // 0


        // let res3 = 10 + 5 || 5 + 3
        // console.log(res3) // 15
        // let res4 = 10 - 10 || 5 + 3
        // console.log(res4) // 8

        // 最终有什么现象？最终弹出1
        // alert(1||2)

        // // webapi时说事件对象的兼容
        // btn.onclick = function (e) {
        //     // 如果浏览器是新版本，那么e就是事件对象，对象就是真
        //     // 如果浏览器是老版本，那么e就是undefined。undefined就是假，所以最终e的值就变成了window.event
        //     // 大白话就是：左边有值取左边的，左边没值取右边的
        //     e = e || window.event
        // }


        let age = 19
        
        // && 是一假则假，所以左边为假就不执行右边代码
        // 反过来说就是 左边为真，那肯定会执行右边代码
        age >= 18 && console.log('你好')

        // 所以上面这句话就是个装X写法， 它本质就是写在写
        // if (age >= 18) {
        //     console.log('你好')
        // }

    </script>
</body>

</html>